export function isExternal(path) {
  return /^(https?:|mailto:|tel:)/.test(path)
}
// 返回项目路径

export function getNormalPath(p) {
  if (p.length === 0 || !p || p == 'undefined') {
    return p
  };
  let res = p.replace('//', '/')
  if (res[res.length - 1] === '/') {
    return res.slice(0, res.length - 1)
  }
  return res;
}
// 文件版本号正则
export function isFileEdition(str: string) {
  return /^[A-Za-z]{1,10}$/.test(str)
}

// 手机号验证
export function isPhone(str: string) {
  return /^1[3-9]\d{9}$/.test(str)
}


/* export function isValidInput(str: string) {
  // 非特殊字符
  // 允许的字符范围
  const allowedCharsRegex = /^[a-zA-Z0-9!@#$%^&*(),.?":{}|<>-_+=\[\]';\/\\ ；，。？！~·`《》、]+$/;

  // 排除表情符号的Unicode范围
  const emojiRangeRegex = /[\uD83C-\uDBFF\uDC00-\uDFFF]+/;
  // 检查是否只包含允许的字符
  if (!allowedCharsRegex.test(str)) {
    return false;
  }

  // 检查是否包含表情符号
  if (emojiRangeRegex.test(str)) {
    return false;
  }

  return true;
} */

export function isValidInput(rule:any, value:any, callback:Function) {
    // 允许的字符范围
    const allowedCharsRegex = /^[a-zA-Z0-9!@#$%^&*！——￥%……&*（）(),.?":{}|<>-_+=\[\]';\/\\ ；，。？！~·`《》、\u4e00-\u9fa5]+$/;

    // 排除表情符号的Unicode范围
    const emojiRangeRegex = /[\uD83C-\uDBFF\uDC00-\uDFFF]+/;
    // 检查是否只包含允许的字符

  if (emojiRangeRegex.test(value)) {
    callback(new Error('请不要输入表情符号'));
  } else if ( !allowedCharsRegex.test(value)) {
    callback(new Error('请不要输入非法字符'));
  } else {
    callback();
  }
};

/* // 示例用法
console.log(isValidInput("Hello World!")); // 应该返回true
console.log(isValidInput("😊")); // 应该返回false
console.log(isValidInput("Hello, 😊 how are you?")); // 应该返回false
console.log(isValidInput("Hello, how are you?")); // 应该返回true */